/**
使用channel进行线程通信
var pipe chan int
var pipe chan<- int 只写的管道
var pipe <-chan int 只读的管道
*/
package main

import "fmt"

type user struct {
	name string
	age  int
}

func main() {
	var pipe chan int         //int 为chan的类型  相当于java的泛型 channel必须初始化
	pipe = make(chan int, 10) //10为channel的长度
	pipe <- 10

	number := <-pipe //读取
	fmt.Println(number)

	var objChan chan interface{}
	objChan = make(chan interface{}, 10)

	u1 := user{
		name: "cici",
		age:  18,
	}
	//转类型
	objChan <- u1
	var u2 interface{}
	var u3 user
	u2 = <-objChan
	u3, ok := u2.(user)
	if !ok {
		fmt.Println("失败")
		return
	}
	fmt.Println(u3)
}
